package animator.phantom.gui.flow;

/*
    Copyright Janne Liljeblad 2006,2007,2008

    This file is part of Phantom2D.

    Phantom2D is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Phantom2D is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Phantom2D.  If not, see <http://www.gnu.org/licenses/>.
*/

import java.awt.Rectangle;
import java.util.Vector;

public class MoveArea extends Rectangle
{
	public MoveArea( Vector<FlowGraphic> movingGraphics )
	{
		super( 0,0,0,0 );
	
		Rectangle r;
		int MOVE_AREA_UP_LEFT_X = 0;
		int MOVE_AREA_UP_LEFT_Y = 0;
		int MOVE_AREA_DOWN_RIGHT_X = 0;
		int MOVE_AREA_DOWN_RIGHT_Y = 0;

		for( int i = 0; i < movingGraphics.size(); i++ )
		{
			r = movingGraphics.elementAt( i ).getArea();

			//--- Use first box to initialize move area.
			if( i == 0 )
			{
				MOVE_AREA_UP_LEFT_X = r.x;
				MOVE_AREA_UP_LEFT_Y = r.y;
				MOVE_AREA_DOWN_RIGHT_X = r.x + r.width;
				MOVE_AREA_DOWN_RIGHT_Y = r.y + r.height;
				continue;
			}
			
			//--- Update bounding box area with FlowGraphic area r
			if( r.x < MOVE_AREA_UP_LEFT_X ) 
				MOVE_AREA_UP_LEFT_X = r.x;
			if( r.y < MOVE_AREA_UP_LEFT_Y ) 
				MOVE_AREA_UP_LEFT_Y = r.y;
			if( r.x + r.width > MOVE_AREA_DOWN_RIGHT_X ) 
				MOVE_AREA_DOWN_RIGHT_X = r.x + r.width;
			if( r.y + r.height > MOVE_AREA_DOWN_RIGHT_Y ) 
				MOVE_AREA_DOWN_RIGHT_Y = r.y + r.height;
		}
		
		//--- Set area.
		setLocation( MOVE_AREA_UP_LEFT_X, MOVE_AREA_UP_LEFT_Y );
		setSize( MOVE_AREA_DOWN_RIGHT_X - MOVE_AREA_UP_LEFT_X, 
				MOVE_AREA_DOWN_RIGHT_Y - MOVE_AREA_UP_LEFT_Y );	
	}

}//end class